质量推广预警 - JDK 22:注解处理行为变更

The OpenJDK 质量小组 正在推广使用 OpenJDK 构建测试 FOSS 项目,以提高发布版本的整体质量。此预警是向相关项目发送的 定期通信 的一部分。要了解有关该计划的更多信息以及如何加入,请查看 此处.

JDK 22:隐式注解处理行为变更

2023 年 7 月质量推广更新 中所述,从 JDK 21 开始,javac 会在使用隐式注解处理时发出提示,即,如果在没有使用显式注解处理配置选项的情况下,从类路径中找到并运行了一个或多个注解处理器。

提示的发出原因是,引用提示文本中的内容

javac 的未来版本可能会禁用注解处理,除非至少指定了一个处理器名称 (-processor),或者指定了一个搜索路径 (--processor-path, --processor-module-path),或者显式启用注解处理 (-proc:only, -proc:full).

javac 的那个未来版本已在 JDK 22 b19+ 中随 JDK-8306819 (“考虑禁用编译器的默认活动注解处理”) 出现。在 JDK 21 中发出提示的情况下,在 JDK 22 中不会发出提示,并且不会运行注解处理器。要恢复与运行注解处理器相关的先前行为,请添加 -proc:full javac 选项。

有关注解处理策略变更的反馈可以发送到 compiler-dev 邮件列表。

~